cmake_minimum_required(VERSION 3.15)

# set the project name
project(Tutorial VERSION 1.0.2)

# specify the C++ standard
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

SET(SRC_LIST tutorial.cpp)

configure_file(TutorialConfig.h.in TutorialConfig.h)

# add the MathFunctions library
if(USE_MYMATH)
  add_subdirectory(MathFunctions)
  list(APPEND EXTRA_LIBS MathFunctions)
#   list(APPEND EXTRA_INCLUDES ${PROJECT_SOURCE_DIR}/MathFunctions)
endif()


# add_executable 用来生成可执行文件，需要指定生成可执行文件的名称和相关源文件
# 用变量代替
add_executable(${PROJECT_NAME} ${SRC_LIST})

target_link_libraries(${PROJECT_NAME} PUBLIC ${EXTRA_LIBS})

# add the binary tree to the search path for include files
# so that we will find TutorialConfig.h
target_include_directories(${PROJECT_NAME} PUBLIC
                           ${PROJECT_BINARY_DIR}
                        #    ${EXTRA_INCLUDES}
                           )

option(USE_MYMATH "Use tutorial provided math implementation" ON)
